/*
    sessionStorage存储注册状态与登陆状态
    localstorage存储已注册用户信息
*/

import Vue from 'vue';

export default {
	state: {},
	mutations: {
		REGISTER:function(state,user) {
			let flag = 0,len = localStorage.length;
	//localStorage与sessionStorage保存的是JSON格式
			//判断是否重名,用了双层判断，提高效率。
			//先找key里包含'user'字符串的，再进一步找名字相同的。
			for(let i=0;i<len;i++) {
				if(localStorage.key(i).indexOf('user') != -1) {
					if(JSON.parse(localStorage.getItem(localStorage.key(i))).name == user.name) {
						flag = 1;
						break;
					}
				}
			}
			//不重名就在localStorage里新加一个，并在sessionStorage里保存一个注册状态码。
			if(flag === 0) {		
				localStorage.setItem('user'+len, JSON.stringify(user));
				sessionStorage.register = 1;
			} else {
				sessionStorage.register = 0;
			}
		},
		SIGN_IN:function(state,user) {
			let flag = 0,len = localStorage.length,localuser = '';
			//若登入的用户不在localStorage里就不能登入
			for(var i=0;i<len;i++) {
				if(localStorage.key(i).indexOf('user') != -1) {
					if(JSON.parse(localStorage.getItem(localStorage.key(i))).tel == user.tel) {
						localuser = JSON.parse(localStorage.getItem(localStorage.key(i)));
						flag = 1;
						break;
					}
				}
			};
			//用户存在并且用户名密码正确
			if(flag === 1 && user.psw == localuser.psw) {
				sessionStorage.login = 1;
				sessionStorage.user = JSON.stringify(localuser);
				sessionStorage.userId = localStorage.key(i);
			} else {
				sessionStorage.login = 0;
			}
		},
		SIGN_OUT:function(state) {
			sessionStorage.register = 0;
            sessionStorage.login = 0;
		}
	},
	actions: {
		register({commit}, user) { // 触发注册操作
			commit('REGISTER', user);
		},
		signIn({commit}, user) {
			commit('SIGN_IN', user);  // 触发登录操作
		},
		signOut({commit}) {
			commit('SIGN_OUT');  // 触发退出登录操作
		}
	}
}